#include <ctime>
#include <string>

std::string formatTime(time_t t) {
    struct tm localTime;
    if (localtime_s(&localTime, &t) != 0) {
        // 如果转换失败，则返回空字符串或错误信息
        return "";
    }
    
    // 定义缓冲区，用于存储格式化后的日期时间字符串
    char buffer[20];  // 对于 mm-dd-yyyy 格式，10个字符足够，外加终止符
    
    // 使用 strftime 格式化时间
    strftime(buffer, sizeof(buffer), "%Y-%m-%d", &localTime);
    
    // 返回格式化后的时间字符串
    return std::string(buffer);
}


time_t getTimeTFromYMD(int year, int month, int day) {
    struct tm t = {0};
    t.tm_year = year - 1900;  // tm_year 是从1900年开始计算的年数
    t.tm_mon = month - 1;     // tm_mon 的范围是 0-11，代表1-12月
    t.tm_mday = day;          // tm_mday 是一个月中的第几天
    t.tm_hour = 0;            // 设置小时，默认为0点
    t.tm_min = 0;             // 分钟
    t.tm_sec = 0;             // 秒
    t.tm_isdst = -1;          // 夏令时自动处理

    // 将 struct tm 转换为 time_t
    time_t result = mktime(&t);
    if (result == -1) {
        // 如果 mktime 返回 -1，说明提供的日期无效
        return -1;
    }
    return result;
}